package com.lianniu.mgr.baseService.post.dao;

import java.util.List;

import com.lianniu.mgr.baseService.post.model.Post2Menu2OpVo;
import com.lianniu.mgr.baseService.post.model.Post2MenuVo;
import com.lianniu.mgr.baseService.post.model.Post2OrgVo;
import com.lianniu.mgr.baseService.post.model.Post2SysAreaVo;
import com.lianniu.mgr.baseService.post.model.PostVo;
import org.apache.ibatis.annotations.Param;

public interface IPostMapperDao {

  /**
   * 插入岗位信息
   * 
   * @param postVo
   * @return 插入记录数
   */
  int addPostInfo(PostVo postVo);

  /**
   * 根据岗位ID更新岗位信息
   * 
   * @param postVo 岗位信息
   * @return 更新记录数
   */
  int editPostById(PostVo postVo);

  /**
   * @Description：查询岗位列表
   * @Param:Post2OrgVo
   * @Return:List<PostVo>

   * @Date:2016-3-24 10:31:43
   */
  List<Post2OrgVo> getPostListForPage(Post2OrgVo post2OrgVo);
  
  /**
   * 
   * @Title: getPostList 
   * @Description: 查询岗位列表

   * @param post2OrgVo
   * @return
   * @date: 2016年4月5日 下午12:37:32 
   * @return: List<Post2OrgVo>
   */
  List<Post2OrgVo> getPostList(Post2OrgVo post2OrgVo);
  
  /**
   * @Description：删除岗位
   * @Param:modifyUser 修改人  id 删除岗位id
   * @Return:删除行数

   * @Date:2016-3-29 21:07:36
   */
  int delPost(String modifyUser,String...id);

  /**
   * @Description：根据ID查询岗位信息
   * @Param:PostVo
   * @Return:List<PostVo>
   * @Date:2016-3-30 10:31:43
   */
  List<PostVo> getPostInfoById(PostVo postVo);
  
  /**
   * @Description：根据postid获取关联的post2menu列表
   * @Param:PostVo
   * @Return:List<Post2MenuVo>

   * @Date:2016-3-31 09:49:53
   */
  List<Post2MenuVo> getPost2MenuListByPostId(PostVo postVo);
  
  /**
   * @Description：根据postid,menuid获取关联的post2menu2op列表
   * @Param:Post2MenuVo
   * @Return:List<Post2Menu2OpVo>

   * @Date:2016-3-31 10:15:39
   */
  List<Post2Menu2OpVo> getPost2Menu2OpListByPost2MenuVo(Post2MenuVo post2MenuVo);
  
  /**
   * @Description：根据postid获取关联的post2sysarea列表
   * @Param:PostVo
   * @Return:List<Post2SysAreaVo>

   * @Date:2016-3-31 10:29:09
   */
  List<Post2SysAreaVo> getPost2SysAreaListByPostId(PostVo postVo);
  
  /**
   * @Description：批量插入Post2MenuVo
   * @Param:List<Post2MenuVo>
   * @Return:插入行数

   * @Date:2016-3-31 10:49:18
   */
  int addPost2MenuBatch(List<Post2MenuVo> post2MenuList);
  
  /**
   * @Description：批量插入Post2Menu2OpVo
   * @Param:List<Post2Menu2OpVo>
   * @Return:插入行数

   * @Date:2016-3-31 10:50:41
   */
  int addPost2Menu2OpBatch(List<Post2Menu2OpVo> post2Menu2OpList);
  
  /**
   * @Description：批量插入Post2SysAreaVo
   * @Param:List<Post2SysAreaVo>
   * @Return:插入行数

   * @Date:2016-3-31 10:50:45
   */
  int addPost2SysAreaBatch(List<Post2SysAreaVo> post2SysAreaList);

  /**
   * @Description：根据岗位ID查询岗位组织信息
   * @Param:Post2OrgVo
   * @Return:List<PostVo>
   * @Date:2016-4-1 10:31:43
   */
  List<Post2OrgVo> getPost2OrgById(Post2OrgVo post2OrgVo);
  
  /**
   * @Description：根据菜单id列表，返回已经分配岗位的菜单id列表
   * @Param:List<String> 菜单id列表
   * @Return:List<String> 已经分配岗位的菜单id列表

   * @Date:2016-4-5 13:57:43
   */
  List<String> isAllocatedPosts(List<String> menuIdList);
  
  /**
   * @Description：根据post_id删除lianniu_post2menu关联表数据
   * @Param:post_id
   * @Return:删除行数

   * @Date:2016-4-5 16:04:20
   */
  int delPost2MenuByPostId(String... id);
  
  /**
   * @Description：根据post_id删除lianniu_post2menu2op关联表数据
   * @Param:post_id
   * @Return:删除行数

   * @Date:2016-4-5 16:04:20
   */
  int delPost2Menu2OpByPostId(String... id);
  
  /**
   * @Description：根据post_id删除lianniu_post2sysarea关联表数据
   * @Param:post_id
   * @Return:删除行数

   * @Date:2016-4-5 16:04:20
   */
  int delPost2SysAreaByPostId(String... id);

  /**
   * @Description:根据staffId获取岗位信息
   * @param staffId
   * @return List<PostVo>
   * @Date:2016年9月27日下午3:46:21
   * @Version 1.0.0
   */
  List<PostVo> getPostByStaffId(@Param(value="staffId") String staffId);

  /**
   * @Description:根据员工Id列表查询岗位组织信息
   * @param post2OrgVo
   * @return List<Post2OrgVo>
   * @Date:2016年10月20日下午4:24:09
   * @Version 1.0.0
   */
  List<Post2OrgVo> getPostListByStaffIdForPage(Post2OrgVo post2OrgVo);
}
